作者:KL | 来源:互联网 | 2023-01-07 18:33
请考虑以下代码段:
#include
#include
int main()
{
std::stringstream ss;
ss <<"12345";
unsigned short s;
ss >> s;
ss <<"foo";
std::cout <
clang ++ trunk打印出以下结果:
ss.eof() = true
ss.good() = false
ss.bad() = false
ss.fail() = false
ss.str() = 12345
在wandbox上
g ++ trunk打印以下结果:
ss.eof() = true
ss.good() = false
ss.bad() = false
ss.fail() = true
ss.str() = 12345
在wandbox上
如您所见,ss.fail()
两个编译器之间的值不同.标准对于std::stringstream
这种情况下的行为有何评价?是否实现定义设置failbit
/ badbit
何时写入已经消耗的流?